草庐IT

c++ - QMap 和 std::unique_ptr

全部标签

c++ - 为 C/C++ 程序编写检测工具

我想编写一个程序来自动检测输入的C/C++代码基于一些输入属性。我正在寻找一个开始学习如何这样做的好地方(主要与如何进行检测、在哪里进行检测等相关)。我已经在网上搜索了一段时间,但运气不佳。因此,如果有人可以帮助我指出一个好的起点,我将不胜感激。谢谢 最佳答案 如果您还没有找到它,这里有一个非常相似的问题,其中包含使用自定义的好主意LLVMPass和GCCMELT:InstrumentingC/C++codeusingLLVM如果您正在寻找更简单的东西,请检查这个基于预处理器的解决方案BasicInstrumentationandP

c++ - 乱码编译器 (MinGW) 输出

我一直在尝试编译我在其他地方使用的一些基本链表示例。我遇到的问题更多是用户问题。我想图片说明了一切:所有奇怪符号的原因是什么?正常的MinGW输出应该类似于错误:从‘void*’到‘element*’的无效转换这就是我遇到的问题,但我很乐意收到有关错误本身的解释。这是我的代码:#include#includestructelement{intinfo;structelement*next;};intmain(void){structelement*head,*node;intarv;head=NULL;printf("Enternumber!(0toexit)");scanf("%d"

c++ - 将 unique_ptr 插入 map ,指针被销毁

我有以下(简化的)类(class):classOperator{private:std::map>op;public:templatevoidinsertOperand(std::stringconst&s,To=T()){op.insert(std::pair>(s,std::move(std::unique_ptr(newT(o))));}voidsetOperandsValue(std::stringconst&o,intv){op.find(o)->second->setValue(v);}};插入一个新的Operand没有任何问题。然而,当函数返回时,析构函数被调用,因此ma

c++ - 在 gmp 任意精度上生成正态分布

所以,我正在尝试使用gmp对于我正在做的一些计算,在某些时候我需要从正态分布中生成一个伪随机数(prn)。由于gmp有一个统一的随机变量,这已经很有帮助了。但是,我发现很难选择应该使用哪种方法从统一的方法生成正态分布。实际上,我的问题是gmp只有简单的操作,所以例如我不能使用cos或erf评估,因为我必须自己实现。我的问题是我可以在多大程度上从gmp上的正态分布生成prn,如果这非常困难,是否有任何已经实现正态分布的任意精度库。作为无效方法的两个示例(从thisquestion检索):Zigguratalgorithm使用f的评估,在这种情况下它是一个非整数指数,因此不受gmp支持。B

c++ - 在 QMap::remove 之后使用 QString 导致崩溃

我有以下代码:classNamedObjectContainer{//...QMapmUsed;//...};constStoredObject*NamedObjectContainer::use(constQString&name,constQString&userId){qDebug()在这里,我试图通过键(userId)从QMap中删除元素。元素被正确删除。但令人惊讶的是,它在QMap::remove之后崩溃打印userId。ProgramreceivedsignalSIGSEGV,Segmentationfault.[SwitchingtoThread0xb5b2c6c0(LW

c++ - Collada 蒙皮

我希望你能帮助我。我的问题是collada的蒙皮方程:v+={[(v*BSM)*IBMi*JMi]*JW}n:影响顶点v的关节数BSM:绑定(bind)形状矩阵IBMi:关节i的逆绑定(bind)姿势矩阵JMi:关节i的变换矩阵JW:关节i对顶点v影响的权重必须计算每个顶点“v”(即通过“for”bucle)。但是,如果我有10,000个或更多顶点的网格,它不会非常非常慢吗?这必须实时计算吗?没有其他方法可以计算“v”?非常感谢。:-) 最佳答案 您可以使用阈值JW-对于每个顶点v,您可以跳过上任何关节i的进一步计算v其中JWi低于

C++11 std::regex_match 返回额外字符

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Isgcc4.7buggyaboutregularexpressions?我遵循了http://www.cplusplus.com/reference/std/regex/regex_match/上的示例并在Ubuntu12.0464位上使用g++版本4.6.3编译以下是我的输出:stringliteralmatchedstringobjectmatchedrangematchedstringliteralwith3matchesstringobjectwith3matchesrangewith3matche

c++ - 在函数完整性检查期间如何处理整数溢出?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:BestwaytodetectintegeroverflowinC/C++我正在用C编写一个函数,但问题是通用的。该函数接受三个整数并返回有关这三个整数的一些信息。我怀疑这里的问题是整数可以达到最大值,这会导致溢出。例如:如果我将a作为最大值传递并且b可以是1-max的任何值,那么在这种情况下,if条件中的表达式(a+b)>c会导致溢出吗?如果是这样,我该如何处理?我的解决方案是保留一个长整数作为临时变量以保留a+b的值并在表达式中使用它,但这听起来很脏。引用这个片段:inttriangle_type(int

c++ - std::initializer_list<> 和一个引用参数

我刚开始使用初始化列表,我想知道它们的工作方式是否与其他STL容器相似。我的意思是他们复制值(value)观吗?我想做的是一个简单的min()函数,如下所示:templateT&minArgs(conststd::initializer_list&Arguments){constT*Smallest=Arguments.begin();for(constT*I=begin(Arguments);I!=end(Arguments);++I){if(*I然而,当我调用函数时,我从GCC得到了这个:error:'const'qualifierscannotbeappliedto'int&'我

c++ - 如何将更新的 git-hash 嵌入到 Version.hpp 中?

原标题:如何让git忽略我的文件而不考虑分支?我有以下按预期工作的checkout后文件:#!/usr/bin/rubycmd=ENV["HOME"]+"/dev/pitbull/cpp/bin/gen_version.rb--write"`#{cmd}`gen_version.rb脚本计算出时间戳、最后一个主标记和HEADgit哈希并写入同样在git中的VERSION.hpp文件。然后我使用usegitupdate-index--assume-unchangedVERSION.hpp让git忽略我的更改。现在,如果我留在我的开发分支上,这会很好用。但是当我尝试getcheckoutm